package com.groot.medical.dao;

import java.util.List;

import com.groot.medical.entity.FamilyArchives;
import com.groot.medical.entity.PersonalFiles;

public interface FamilyArchivesDao {
	/**
	 * 查询家庭档案数
	 * @return
	 */
	int getAllFamilyCount();
	/**
	 * 分页查询家庭档案数
	 * @param startIndex
	 * @param pageSize
	 * @return
	 */
	List findFamilyByPage(int startIndex, int pageSize);
	/**
	 * 添加参合家庭档案信息
	 * @param family
	 * @return
	 */
	int addFamilyInfo(FamilyArchives family);
	/**
	 * 自动生成家庭编号
	 * @param family
	 * @return
	 */
	String aotuCreateFamilyCode(FamilyArchives family);
	/**
	 * 查询最大的家庭编号
	 * @param groupArea 
	 * @return
	 */
	String findMaxFamilyCode(String groupArea);
	/**
	 * 根据家庭编号查询家庭档案信息
	 * @param familyCode
	 * @return
	 */
	FamilyArchives findFamilyInfoByFamilyCode(String familyCode);
	/**
	 * 根据家庭编号查询家庭成员列表
	 * @param familyCode
	 * @return
	 */
	List<PersonalFiles> findFamilyAllPersonByFamilyCode(String familyCode);
	/**
	 * 根据家庭编号查询家庭列表信息
	 * @param familyCode
	 * @return
	 */
	List<FamilyArchives> findFamilyListByFamilyCode(String familyCode);
	/**
	 * 根据条件模糊查询记录总数
	 * @param holdername
	 * @param townCode
	 * @return
	 */
	int getAllFamilyCountByLike(String holdername, String townCode);
	/**
	 * 根据条件模糊分页查询记录
	 * @param startIndex
	 * @param pageSize
	 * @param townCode
	 * @param holdername
	 * @return
	 */
	List<FamilyArchives> findByPageAndLike(int startIndex, int pageSize, String townCode, String holdername);
	/**
	 * 查询家庭人口数根据家庭编号
	 * @param familyCode
	 * @return
	 */
	int findFamilyByFamilyCode(String familyCode);
	/**
	 * 修改家庭人口数（和农业人口数）
	 * @param personCounts
	 * @param familyCode
	 */
	void updataPersonCountsByFamilyCode(int personCounts, String familyCode);
	/**
	 * 修改家庭档案
	 * @param family
	 */
	void ediFamilyInfo(FamilyArchives family);
	/**
	 * 删除家庭档案信息
	 * @param familyCode
	 * @return
	 */
	int deleteFamily(String familyCode);

}
